#include <stdio.h>

union  Uflag {
    struct Flags {
        unsigned char flag1 : 1;  // 1位
        unsigned char flag2 : 2;  // 2位
        unsigned char flag3 : 3;  // 3位
    }bits;
    unsigned char val;
};

int main() {
    union Uflag flags;
    flags.bits.flag1 = 1;
    flags.bits.flag2 = 2;
    flags.bits.flag3 = 4;
    // 0010 0101

    printf("Flags: %02x\n", flags.val);

    return 0;
}

